<?php

class Sgit_Error_Handler {
   
    public static function handle($errno, $errstr, $errfile, $errline)
    {
        if (!error_reporting()) return;
        
         $msg= self::getError($errno).' ' .$errstr . " in $errfile:$errline";
         $logger = Zend_Registry::get('loggerTxt');
         $logger->debug($msg);
     
        
        throw new Exception($errstr . " in $errfile:$errline ",$errno);
        
       
    }

    public static function set()
    {
        set_error_handler(array(__CLASS__, 'handle'),E_ALL ^ E_NOTICE);
    }
   
   
   public static function getError($errno)
    {
       switch($errno){
            case 1:
                return 'E_ERROR';
            case 2:
                return 'E_WARNING';
            case 4:
                return 'E_PARSE';
            case 8:
                return 'E_NOTICE';
            case 16:
                return 'E_CORE_ERROR';
            case 32:
                return 'E_CORE_WARNING ';
            case 64:
                return 'E_COMPILE_ERROR ';
            case 128:
                return 'E_COMPILE_WARNING';
            case 256:
                return 'E_USER_ERROR';
            case 512:
                return 'E_USER_WARNING';
            case 1024:
                return 'E_USER_NOTICE ';
            case 2048:
                return 'E_STRICT ';
            case 4096:
                return 'E_RECOVERABLE_ERROR';
            case 8192:
                return 'E_DEPRECATED';
            case 16384:
                return 'E_USER_DEPRECATED ';
            case 32767:
                return 'E_ALL';
       }
    }

}